#ifndef FOG_H_
#define FOG_H_

#include <GL/gl.h>

class Fog{
	public:
		Fog(){}
		virtual ~Fog(){}

		virtual void setFog()=0;
};

class NullFog : public Fog{
	public:
		void setFog(){
			glDisable(GL_FOG);
		}

		static NullFog& instance(){
			static NullFog _instance;
			return _instance;
		}
};

class DayFog : public Fog{
	public:
		void setFog();

		static DayFog& instance(){
			static DayFog _instance;
			return _instance;
		}
};

class StormFog : public Fog{
	public:
		void setFog();

		static StormFog& instance(){
			static StormFog _instance;
			return _instance;
		}
};

#endif /* FOG_H_ */
